[INFO] cloning repository https://github.com/Oortonaut/task-graph-mcp
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Oortonaut/task-graph-mcp" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FOortonaut%2Ftask-graph-mcp", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FOortonaut%2Ftask-graph-mcp'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 75f71d6286b10686fd4c88a38cdef7e9ee1ab1d0
[INFO] testing Oortonaut/task-graph-mcp against master#1f7f8ea0721a3b1eb73e6c6d25cccb371434b320 for pr-154065
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FOortonaut%2Ftask-graph-mcp" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Oortonaut/task-graph-mcp
[INFO] finished tweaking git repo https://github.com/Oortonaut/task-graph-mcp
[INFO] tweaked toml for git repo https://github.com/Oortonaut/task-graph-mcp written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Oortonaut/task-graph-mcp on toolchain 1f7f8ea0721a3b1eb73e6c6d25cccb371434b320
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Oortonaut/task-graph-mcp already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded arc-swap v1.8.0
[INFO] [stderr]   Downloaded refinery-macros v0.9.0
[INFO] [stderr]   Downloaded refinery-core v0.9.0
[INFO] [stderr]   Downloaded schemars_derive v1.2.0
[INFO] [stderr]   Downloaded refinery v0.9.0
[INFO] [stderr]   Downloaded rusqlite v0.37.0
[INFO] [stderr]   Downloaded regex-lite v0.1.8
[INFO] [stderr]   Downloaded petname v2.0.2
[INFO] [stderr]   Downloaded libsqlite3-sys v0.35.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 95627146872b532a7cedfb69cbafe0ff41713675001e61d8bb945b81cb4e844a
[INFO] running `Command { std: "docker" "start" "-a" "95627146872b532a7cedfb69cbafe0ff41713675001e61d8bb945b81cb4e844a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "95627146872b532a7cedfb69cbafe0ff41713675001e61d8bb945b81cb4e844a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "95627146872b532a7cedfb69cbafe0ff41713675001e61d8bb945b81cb4e844a", kill_on_drop: false }`
[INFO] [stdout] 95627146872b532a7cedfb69cbafe0ff41713675001e61d8bb945b81cb4e844a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 9f16799ed858249b806fd23061caed97d0fd76e7efb2a9db79a8028ec99db06a
[INFO] running `Command { std: "docker" "start" "-a" "9f16799ed858249b806fd23061caed97d0fd76e7efb2a9db79a8028ec99db06a", kill_on_drop: false }`
[INFO] [stderr]    Compiling unicode-ident v1.0.22
[INFO] [stderr]    Compiling libc v0.2.180
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling bytes v1.11.0
[INFO] [stderr]    Compiling regex-syntax v0.8.8
[INFO] [stderr]    Compiling memchr v2.7.6
[INFO] [stderr]    Compiling zmij v1.0.17
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling find-msvc-tools v0.1.8
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling walkdir v2.5.0
[INFO] [stderr]    Compiling slab v0.4.11
[INFO] [stderr]    Compiling zerocopy v0.8.35
[INFO] [stderr]    Compiling foldhash v0.1.5
[INFO] [stderr]    Compiling percent-encoding v2.3.2
[INFO] [stderr]    Compiling deranged v0.5.5
[INFO] [stderr]    Compiling cc v1.2.54
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling winnow v0.7.14
[INFO] [stderr]    Compiling ref-cast v1.0.25
[INFO] [stderr]    Compiling toml_write v0.1.2
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling clap_lex v0.7.7
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling heck v0.5.0
[INFO] [stderr]    Compiling linux-raw-sys v0.11.0
[INFO] [stderr]    Compiling fallible-iterator v0.3.0
[INFO] [stderr]    Compiling quote v1.0.44
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling fallible-streaming-iterator v0.1.9
[INFO] [stderr]    Compiling syn v2.0.114
[INFO] [stderr]    Compiling hashlink v0.10.0
[INFO] [stderr]    Compiling petname v2.0.2
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]    Compiling clap_builder v4.5.55
[INFO] [stderr]    Compiling notify-types v2.1.0
[INFO] [stderr]    Compiling rmcp v0.14.0
[INFO] [stderr]    Compiling dyn-clone v1.0.20
[INFO] [stderr]    Compiling option-ext v0.2.0
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling socket2 v0.6.2
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling time v0.3.46
[INFO] [stderr]    Compiling libsqlite3-sys v0.35.0
[INFO] [stderr]    Compiling inotify-sys v0.1.5
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling inotify v0.11.0
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling dirs-sys v0.5.0
[INFO] [stderr]    Compiling thread_local v1.1.9
[INFO] [stderr]    Compiling pastey v0.2.1
[INFO] [stderr]    Compiling nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling notify v8.2.0
[INFO] [stderr]    Compiling regex-automata v0.4.13
[INFO] [stderr]    Compiling tempfile v3.24.0
[INFO] [stderr]    Compiling unsafe-libyaml v0.2.11
[INFO] [stderr]    Compiling dirs v6.0.0
[INFO] [stderr]    Compiling flate2 v1.1.8
[INFO] [stderr]    Compiling arc-swap v1.8.0
[INFO] [stderr]    Compiling notify-debouncer-mini v0.7.0
[INFO] [stderr]    Compiling serde_path_to_error v0.1.20
[INFO] [stderr]    Compiling urlencoding v2.1.3
[INFO] [stderr]    Compiling regex-lite v0.1.8
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling serde_derive_internals v0.29.1
[INFO] [stderr]    Compiling regex v1.12.2
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling ref-cast-impl v1.0.25
[INFO] [stderr]    Compiling clap_derive v4.5.55
[INFO] [stderr]    Compiling tokio v1.49.0
[INFO] [stderr]    Compiling schemars_derive v1.2.0
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling axum-core v0.5.6
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling tracing-subscriber v0.3.22
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]    Compiling clap v4.5.55
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling rmcp-macros v0.14.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling chrono v0.4.43
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling icu_properties v2.1.2
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling futures-executor v0.3.31
[INFO] [stderr]    Compiling futures v0.3.31
[INFO] [stderr]    Compiling schemars v1.2.0
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling refinery-core v0.9.0
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling refinery-macros v0.9.0
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling hyper-util v0.1.19
[INFO] [stderr]    Compiling rusqlite v0.37.0
[INFO] [stderr]    Compiling axum v0.8.8
[INFO] [stderr]    Compiling refinery v0.9.0
[INFO] [stderr]    Compiling task-graph-mcp v0.5.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 31s
[INFO] running `Command { std: "docker" "inspect" "9f16799ed858249b806fd23061caed97d0fd76e7efb2a9db79a8028ec99db06a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9f16799ed858249b806fd23061caed97d0fd76e7efb2a9db79a8028ec99db06a", kill_on_drop: false }`
[INFO] [stdout] 9f16799ed858249b806fd23061caed97d0fd76e7efb2a9db79a8028ec99db06a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] ff736418fff675dadf5159162e84d4b190b7b86750ac9fb5125ab4166d0e5b9e
[INFO] running `Command { std: "docker" "start" "-a" "ff736418fff675dadf5159162e84d4b190b7b86750ac9fb5125ab4166d0e5b9e", kill_on_drop: false }`
[INFO] [stderr]    Compiling task-graph-mcp v0.5.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 32.40s
[INFO] running `Command { std: "docker" "inspect" "ff736418fff675dadf5159162e84d4b190b7b86750ac9fb5125ab4166d0e5b9e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ff736418fff675dadf5159162e84d4b190b7b86750ac9fb5125ab4166d0e5b9e", kill_on_drop: false }`
[INFO] [stdout] ff736418fff675dadf5159162e84d4b190b7b86750ac9fb5125ab4166d0e5b9e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] e0280152b8a455dd249c76909b74229c16af6b7a9e809d578ea57663dd55a125
[INFO] running `Command { std: "docker" "start" "-a" "e0280152b8a455dd249c76909b74229c16af6b7a9e809d578ea57663dd55a125", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.43s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/task_graph_mcp-b623faa3e08ff643)
[INFO] [stdout] 
[INFO] [stdout] running 309 tests
[INFO] [stdout] test cli::agent::tests::test_cli_format_to_output_format ... ok
[INFO] [stdout] test cli::agent::tests::test_error_to_exit_code_dependency_blocked ... ok
[INFO] [stdout] test cli::agent::tests::test_error_to_exit_code_agent_not_found ... ok
[INFO] [stdout] test cli::agent::tests::test_error_to_exit_code_generic ... ok
[INFO] [stdout] test cli::agent::tests::test_error_to_exit_code_not_owner ... ok
[INFO] [stdout] test cli::agent::tests::test_error_to_exit_code_task_not_found ... ok
[INFO] [stdout] test cli::agent::tests::test_error_to_exit_code_missing_field ... ok
[INFO] [stdout] test cli::agent::tests::test_format_claim_output_markdown_with_prompts ... ok
[INFO] [stdout] test cli::agent::tests::test_format_connect_output_json_mode ... ok
[INFO] [stdout] test cli::agent::tests::test_format_connect_output_markdown_mode ... ok
[INFO] [stdout] test cli::agent::tests::test_format_output_raw_markdown ... ok
[INFO] [stdout] test cli::agent::tests::test_format_output_raw_json ... ok
[INFO] [stdout] test cli::agent::tests::test_error_to_exit_code_already_claimed ... ok
[INFO] [stdout] test cli::agent::tests::test_format_update_output_json_mode ... ok
[INFO] [stdout] test cli::agent::tests::test_format_json_output_markdown_mode ... ok
[INFO] [stdout] test cli::agent::tests::test_error_to_exit_code_invalid_value ... ok
[INFO] [stdout] test cli::agent::tests::test_format_update_output_markdown_no_prompts ... ok
[INFO] [stdout] test cli::agent::tests::test_format_json_output_json_mode ... ok
[INFO] [stdout] test cli::agent::tests::test_parse_connect_with_worker_id ... ok
[INFO] [stdout] test cli::agent::tests::test_parse_attach_with_content ... ok
[INFO] [stdout] test cli::agent::tests::test_parse_attach_with_file ... ok
[INFO] [stdout] test cli::agent::tests::test_parse_connect_no_worker_id ... ok
[INFO] [stdout] test cli::agent::tests::test_parse_claim_basic ... ok
[INFO] [stdout] test cli::agent::tests::test_parse_claim_missing_args ... ok
[INFO] [stdout] test cli::agent::tests::test_parse_format_json ... ok
[INFO] [stdout] test cli::agent::tests::test_parse_claim_force ... ok
[INFO] [stdout] test cli::agent::tests::test_parse_connect_with_tags_workflow_overlays ... ok
[INFO] [stdout] test cli::agent::tests::test_parse_batch ... ok
[INFO] [stdout] test cli::agent::tests::test_parse_disconnect ... ok
[INFO] [stdout] test cli::agent::tests::test_parse_format_default_is_markdown ... ok
[INFO] [stdout] test cli::agent::tests::test_parse_attach_content_and_file_conflict ... ok
[INFO] [stdout] test cli::agent::tests::test_parse_disconnect_with_final_status ... ok
[INFO] [stdout] test cli::agent::tests::test_format_update_output_markdown_with_prompts ... ok
[INFO] [stdout] test cli::agent::tests::test_parse_batch_keep_going ... ok
[INFO] [stdout] test cli::agent::tests::test_parse_disconnect_missing_worker_id ... ok
[INFO] [stdout] test cli::agent::tests::test_parse_get_missing_task_id ... ok
[INFO] [stdout] test cli::agent::tests::test_parse_list_agents_defaults ... ok
[INFO] [stdout] test cli::agent::tests::test_parse_interactive_stdin ... ok
[INFO] [stdout] test cli::agent::tests::test_parse_prompts_advisory_list ... ok
[INFO] [stdout] test cli::agent::tests::test_parse_interactive ... ok
[INFO] [stdout] test cli::agent::tests::test_parse_list_agents_with_filters ... ok
[INFO] [stdout] test cli::agent::tests::test_parse_list_tasks_alias_ls ... ok
[INFO] [stdout] test cli::agent::tests::test_parse_prompts_advisory_specific ... ok
[INFO] [stdout] test cli::agent::tests::test_parse_list_tasks_defaults ... ok
[INFO] [stdout] test cli::agent::tests::test_parse_prompts_with_status ... ok
[INFO] [stdout] test cli::agent::tests::test_parse_prompts_with_task ... ok
[INFO] [stdout] test cli::agent::tests::test_parse_thinking_with_tasks ... ok
[INFO] [stdout] test cli::agent::tests::test_parse_global_worker_id ... ok
[INFO] [stdout] test cli::agent::tests::test_parse_no_global_worker_id ... ok
[INFO] [stdout] test cli::agent::tests::test_parse_repl_alias ... ok
[INFO] [stdout] test cli::diff::tests::test_diff_args_no_filter ... ok
[INFO] [stdout] test cli::diff::tests::test_diff_args_table_filter ... ok
[INFO] [stdout] test cli::agent::tests::test_parse_get ... ok
[INFO] [stdout] test cli::agent::tests::test_parse_thinking ... ok
[INFO] [stdout] test cli::agent::tests::test_parse_prompts_no_args ... ok
[INFO] [stdout] test cli::agent::tests::test_parse_prompts_with_phase ... ok
[INFO] [stdout] test cli::diff::tests::test_diff_format_parse ... ok
[INFO] [stdout] test cli::export::tests::test_parse_size ... ok
[INFO] [stdout] test cli::export::tests::test_should_compress ... ok
[INFO] [stdout] test cli::agent::tests::test_parse_update_minimal ... ok
[INFO] [stdout] test cli::import::tests::test_is_gzipped ... ok
[INFO] [stdout] test cli::import::tests::test_import_mode ... ok
[INFO] [stdout] test cli::export::tests::test_tables_to_export_no_history ... ok
[INFO] [stdout] test config::embedded::tests::test_overlay_get ... ok
[INFO] [stdout] test config::embedded::tests::test_workflow_get ... ok
[INFO] [stdout] test cli::migrate::tests::test_migrate_no_source ... ok
[INFO] [stdout] test cli::migrate::tests::test_migrate_target_exists ... ok
[INFO] [stdout] test cli::agent::tests::test_parse_update_all_fields ... ok
[INFO] [stdout] test cli::migrate::tests::test_migrate_dry_run_no_changes ... ok
[INFO] [stdout] test cli::migrate::tests::test_migrate_moves_directory ... ok
[INFO] [stdout] test config::merge::tests::test_arrays_replaced_not_merged ... ok
[INFO] [stdout] test config::merge::tests::test_deep_nested_merge ... ok
[INFO] [stdout] test config::loader::tests::find_project_dir_from_falls_back_when_not_found ... ok
[INFO] [stdout] test config::merge::tests::test_merge_all ... ok
[INFO] [stdout] test config::loader::tests::find_project_dir_from_respects_max_depth ... ok
[INFO] [stdout] test config::loader::tests::find_project_dir_from_subdirectory ... ok
[INFO] [stdout] test config::loader::tests::find_project_dir_from_finds_nearest_ancestor ... ok
[INFO] [stdout] test config::loader::tests::test_config_paths_discover ... ok
[INFO] [stdout] test config::loader::tests::test_project_config_overrides_defaults ... ok
[INFO] [stdout] test config::loader::tests::test_load_defaults_only ... ok
[INFO] [stdout] test config::loader::tests::test_user_config_overrides_project ... ok
[INFO] [stdout] test cli::agent::tests::test_parse_list_tasks_full_filters ... ok
[INFO] [stdout] test config::files::tests::test_find_file_project_fallback ... ok
[INFO] [stdout] test config::types::tests::registered_workflow_tags_suppress_warnings ... ok
[INFO] [stdout] test config::watcher::tests::test_classify_skills_change ... ok
[INFO] [stdout] test config::watcher::tests::test_classify_config_yaml ... ok
[INFO] [stdout] test config::files::tests::test_find_file_not_found ... ok
[INFO] [stdout] test config::watcher::tests::test_classify_overlay_yaml ... ok
[INFO] [stdout] test config::watcher::tests::test_classify_unknown_file ... ok
[INFO] [stdout] test config::watcher::tests::test_event_requires_reload ... ok
[INFO] [stdout] test config::watcher::tests::test_classify_workflow_yaml ... ok
[INFO] [stdout] test config::files::tests::test_find_file_user_priority ... ok
[INFO] [stdout] test config::types::tests::register_workflow_tags_adds_unknown_tags ... ok
[INFO] [stdout] test config::merge::tests::test_merge_nested_objects ... ok
[INFO] [stdout] test config::merge::tests::test_merge_simple_objects ... ok
[INFO] [stdout] test config::files::tests::test_list_files_deduplication ... ok
[INFO] [stdout] test config::merge::tests::test_overlay_replaces_object_with_primitive ... ok
[INFO] [stdout] test config::merge::tests::test_overlay_replaces_primitive_with_object ... ok
[INFO] [stdout] test config::workflows::tests::test_all_role_tags_deduplicates ... ok
[INFO] [stdout] test config::workflows::tests::test_all_role_tags_from_base_config ... ok
[INFO] [stdout] test config::types::tests::register_workflow_tags_preserves_existing_definitions ... ok
[INFO] [stdout] test config::workflows::tests::test_apply_overlay_adds_new_state ... ok
[INFO] [stdout] test config::workflows::tests::test_apply_overlay_appends_prompts ... ok
[INFO] [stdout] test config::workflows::tests::test_apply_overlay_extends_gates ... ok
[INFO] [stdout] test config::workflows::tests::test_all_role_tags_includes_named_workflows ... ok
[INFO] [stdout] test config::workflows::tests::test_apply_overlay_roles_first_wins ... ok
[INFO] [stdout] test config::workflows::tests::test_apply_overlay_unions_exits ... ok
[INFO] [stdout] test config::workflows::tests::test_phases_config_from_workflows ... ok
[INFO] [stdout] test config::workflows::tests::test_default_workflows ... ok
[INFO] [stdout] test config::workflows::tests::test_get_tag_exit_gates_empty ... ok
[INFO] [stdout] test dashboard::server::tests::test_health_response_serialization ... ok
[INFO] [stdout] test config::workflows::tests::test_get_prompt ... ok
[INFO] [stdout] test config::workflows::tests::test_states_config_from_workflows ... ok
[INFO] [stdout] test config::workflows::tests::test_list_prompt_triggers ... ok
[INFO] [stdout] test config::workflows::tests::test_compute_overlay_diff ... ok
[INFO] [stdout] test config::embedded::tests::test_embedded_overlays_parse ... ok
[INFO] [stdout] test config::workflows::tests::test_advisory_overlay_merge ... ok
[INFO] [stdout] test config::workflows::tests::test_governance_overlay_advisories ... ok
[INFO] [stdout] test db::import::tests::test_dry_run_result_totals ... ok
[INFO] [stdout] test config::workflows::tests::test_governance_overlay_deserializes ... ok
[INFO] [stdout] test config::workflows::tests::test_git_worktree_overlay_patching_state ... ok
[INFO] [stdout] test config::workflows::tests::test_governance_overlay_tag_gates ... ok
[INFO] [stdout] test db::import::tests::test_import_mode_default ... ok
[INFO] [stdout] test db::import::tests::test_import_options_with_parent_builder ... ok
[INFO] [stdout] test db::import::tests::test_import_options_merge ... ok
[INFO] [stdout] test db::import::tests::test_import_result_total_skipped ... ok
[INFO] [stdout] test db::import::tests::test_import_result_total_deleted ... ok
[INFO] [stdout] test config::merge::tests::test_null_preserves_base ... ok
[INFO] [stdout] test config::workflows::tests::test_git_worktree_overlay_composes_with_git ... ok
[INFO] [stdout] test config::workflows::tests::test_git_worktree_overlay_deserializes ... ok
[INFO] [stdout] test db::export::tests::test_export_excludes_deleted_tasks_when_requested ... ok
[INFO] [stdout] test config::embedded::tests::test_embedded_workflows_parse ... ok
[INFO] [stdout] test db::export::tests::test_export_selective_tables ... ok
[INFO] [stdout] test db::export::tests::test_export_empty_database ... ok
[INFO] [stdout] test db::import::tests::test_import_empty_snapshot ... ok
[INFO] [stdout] test db::import::tests::test_import_fails_on_non_empty_database ... ok
[INFO] [stdout] test db::import::tests::test_import_replace_mode ... ok
[INFO] [stdout] test db::import::tests::test_import_with_attachments ... ok
[INFO] [stdout] test db::export::tests::test_export_task_tags_ordered ... ok
[INFO] [stdout] test db::import::tests::test_import_task_sequence ... ok
[INFO] [stdout] test db::import::tests::test_import_schema_version_mismatch ... ok
[INFO] [stdout] test db::import::tests::test_clear_project_data ... ok
[INFO] [stdout] test db::import::tests::test_import_with_dependencies ... ok
[INFO] [stdout] test db::export::tests::test_export_dependencies_ordered ... ok
[INFO] [stdout] test db::import::tests::test_import_tasks ... ok
[INFO] [stdout] test db::export::tests::test_export_tasks_ordered_by_id ... ok
[INFO] [stdout] test db::import::tests::test_import_with_parent_and_empty_snapshot ... ok
[INFO] [stdout] test db::import::tests::test_preview_merge_mode ... ok
[INFO] [stdout] test db::import::tests::test_import_with_parent_not_found_fails ... ok
[INFO] [stdout] test db::import::tests::test_merge_mode_adds_new_tags ... ok
[INFO] [stdout] test db::import::tests::test_import_with_parent_attaches_root_tasks ... ok
[INFO] [stdout] test db::import::tests::test_import_without_parent_does_not_link ... ok
[INFO] [stdout] test db::import::tests::test_import_with_tags ... ok
[INFO] [stdout] test db::import::tests::test_snapshot_root_task_ids_all_roots ... ok
[INFO] [stdout] test db::import::tests::test_remap_snapshot_generates_new_ids ... ok
[INFO] [stdout] test db::import::tests::test_remap_snapshot_remaps_dependencies ... ok
[INFO] [stdout] test db::import::tests::test_snapshot_root_task_ids_empty_snapshot ... ok
[INFO] [stdout] test db::import::tests::test_snapshot_root_task_ids_non_contains_dep_ignored ... ok
[INFO] [stdout] test db::import::tests::test_remap_snapshot_remaps_attachments_and_tags ... ok
[INFO] [stdout] test db::import::tests::test_preview_fresh_mode_empty_db ... ok
[INFO] [stdout] test db::import::tests::test_snapshot_root_task_ids_with_contains ... ok
[INFO] [stdout] test db::import::tests::test_remap_snapshot_empty ... ok
[INFO] [stdout] test db::template::tests::test_analyze_empty_template ... ok
[INFO] [stdout] test db::import::tests::test_merge_mode_skips_existing_dependencies ... ok
[INFO] [stdout] test db::template::tests::test_analyze_template_entry_points ... ok
[INFO] [stdout] test db::template::tests::test_analyze_template_exit_points ... ok
[INFO] [stdout] test db::import::tests::test_merge_mode_skips_existing_tasks ... ok
[INFO] [stdout] test db::import::tests::test_preview_fresh_mode_non_empty_db ... ok
[INFO] [stdout] test db::import::tests::test_preview_schema_version_mismatch ... ok
[INFO] [stdout] test db::template::tests::test_prepare_snapshot_clears_sequence ... ok
[INFO] [stdout] test db::import::tests::test_merge_mode_skips_state_sequence ... ok
[INFO] [stdout] test db::template::tests::test_prepare_snapshot_remaps_ids ... ok
[INFO] [stdout] test db::template::tests::test_prepare_snapshot_resets_status ... ok
[INFO] [stdout] test db::template::tests::test_prepare_snapshot_title_prefix ... ok
[INFO] [stdout] test export::diff::tests::test_diff_records ... ok
[INFO] [stdout] test export::diff::tests::test_diff_snapshots ... ok
[INFO] [stdout] test export::diff::tests::test_diff_table ... ok
[INFO] [stdout] test export::diff::tests::test_extract_key_composite ... ok
[INFO] [stdout] test export::diff::tests::test_extract_key_single ... ok
[INFO] [stdout] test export::diff::tests::test_snapshot_diff_display ... ok
[INFO] [stdout] test export::diff::tests::test_values_equal ... ok
[INFO] [stdout] test export::tests::test_snapshot_json_roundtrip ... ok
[INFO] [stdout] test export::tests::test_snapshot_new ... ok
[INFO] [stdout] test export::tests::test_table_ordering ... ok
[INFO] [stdout] test export::tests::test_table_primary_key ... ok
[INFO] [stdout] test db::import::tests::test_preview_replace_mode ... ok
[INFO] [stdout] test format::tests::test_format_task_tree_markdown_root_only ... ok
[INFO] [stdout] test format::tests::test_format_task_tree_markdown_with_children ... ok
[INFO] [stdout] test format::tests::test_truncate_title_at_limit ... ok
[INFO] [stdout] test format::tests::test_truncate_title_long_multiline ... ok
[INFO] [stdout] test format::tests::test_truncate_title_multiline ... ok
[INFO] [stdout] test format::tests::test_truncate_title_over_limit ... ok
[INFO] [stdout] test db::import::tests::test_rebuild_fts_indexes ... ok
[INFO] [stdout] test gates::tests::test_gate_check_result_status_pass ... ok
[INFO] [stdout] test format::tests::test_truncate_title_short ... ok
[INFO] [stdout] test gates::tests::test_gate_result_serialization ... ok
[INFO] [stdout] test logging::tests::test_level_filter ... ok
[INFO] [stdout] test logging::tests::test_level_filter_update ... ok
[INFO] [stdout] test logging::tests::test_level_roundtrip ... ok
[INFO] [stdout] test logging::tests::test_logging_level_to_tracing ... ok
[INFO] [stdout] test paths::tests::test_config_with_mappings ... ok
[INFO] [stdout] test paths::tests::test_default_path_mapper ... ok
[INFO] [stdout] test paths::tests::test_display_relative_style ... ok
[INFO] [stdout] test paths::tests::test_normalize_all ... ok
[INFO] [stdout] test paths::tests::test_normalize_path_components ... ok
[INFO] [stdout] test paths::tests::test_normalize_relative_path ... ok
[INFO] [stdout] test paths::tests::test_normalize_with_dot_components ... ok
[INFO] [stdout] test paths::tests::test_path_to_forward_slashes ... ok
[INFO] [stdout] test paths::tests::test_prefix_must_be_lowercase ... ok
[INFO] [stdout] test paths::tests::test_sandbox_escape_blocked ... ok
[INFO] [stdout] test paths::tests::test_round_trip_filesystem_path ... ok
[INFO] [stdout] test paths::tests::test_uppercase_prefix_in_config_rejected ... ok
[INFO] [stdout] test paths::tests::test_unknown_prefix_rejected ... ok
[INFO] [stdout] test prompts::tests::test_attributed_prompts_phase_change ... ok
[INFO] [stdout] test prompts::tests::test_expand_prompt_agent_context ... ok
[INFO] [stdout] test prompts::tests::test_expand_prompt_agent_context_missing ... ok
[INFO] [stdout] test prompts::tests::test_expand_prompt_agent_context_no_role ... ok
[INFO] [stdout] test prompts::tests::test_expand_prompt_combined_context ... ok
[INFO] [stdout] test prompts::tests::test_expand_prompt_current_phase ... ok
[INFO] [stdout] test prompts::tests::test_expand_prompt_task_context ... ok
[INFO] [stdout] test prompts::tests::test_expand_prompt_task_context_empty_tags ... ok
[INFO] [stdout] test prompts::tests::test_expand_prompt_terminal_state ... ok
[INFO] [stdout] test prompts::tests::test_expand_prompt_valid_exits ... ok
[INFO] [stdout] test prompts::tests::test_expand_prompt_valid_phases ... ok
[INFO] [stdout] test prompts::tests::test_get_transition_prompts ... ok
[INFO] [stdout] test prompts::tests::test_get_transition_prompts_attributed ... ok
[INFO] [stdout] test prompts::tests::test_list_available_prompts ... ok
[INFO] [stdout] test prompts::tests::test_load_prompt_from_workflows ... ok
[INFO] [stdout] test prompts::tests::test_no_triggers_when_unchanged ... ok
[INFO] [stdout] test prompts::tests::test_prompt_context_builder_pattern ... ok
[INFO] [stdout] test prompts::tests::test_trigger_to_source_combo ... ok
[INFO] [stdout] test prompts::tests::test_expand_prompt_task_context_missing ... ok
[INFO] [stdout] test prompts::tests::test_trigger_to_source_phase ... ok
[INFO] [stdout] test prompts::tests::test_trigger_to_source_state ... ok
[INFO] [stdout] test prompts::tests::test_triggers_both_change ... ok
[INFO] [stdout] test prompts::tests::test_triggers_enter_phase_from_none ... ok
[INFO] [stdout] test prompts::tests::test_triggers_exit_phase_to_none ... ok
[INFO] [stdout] test prompts::tests::test_triggers_status_change_only ... ok
[INFO] [stdout] test resources::docs::tests::test_get_doc_resource ... ok
[INFO] [stdout] test prompts::tests::test_triggers_phase_change_only ... ok
[INFO] [stdout] test resources::docs::tests::test_list_docs_no_dir ... ok
[INFO] [stdout] test resources::docs::tests::test_get_doc_resource_not_found ... ok
[INFO] [stdout] test resources::docs::tests::test_list_docs_with_files ... ok
[INFO] [stdout] test resources::docs::tests::test_search_docs_empty_query ... ok
[INFO] [stdout] test resources::docs::tests::test_search_docs_filename_match ... ok
[INFO] [stdout] test resources::docs::tests::test_search_docs_finds_content ... ok
[INFO] [stdout] test db::import::tests::test_remap_import_round_trip ... ok
[INFO] [stdout] test resources::docs::tests::test_search_docs_multi_term ... ok
[INFO] [stdout] test resources::docs::tests::test_search_docs_no_dir ... ok
[INFO] [stdout] test resources::docs::tests::test_search_docs_with_subdirectories ... ok
[INFO] [stdout] test resources::docs::tests::test_validate_doc_path ... ok
[INFO] [stdout] test resources::skills::tests::test_get_embedded_skill ... ok
[INFO] [stdout] test resources::docs::tests::test_search_docs_pagination ... ok
[INFO] [stdout] test resources::skills::tests::test_get_skill_embedded ... ok
[INFO] [stdout] test resources::skills::tests::test_list_skills ... ok
[INFO] [stdout] test resources::skills::tests::test_list_skills_has_frontmatter_descriptions ... ok
[INFO] [stdout] test resources::skills::tests::test_parse_frontmatter_description ... ok
[INFO] [stdout] test resources::skills::tests::test_normalize_name ... ok
[INFO] [stdout] test resources::skills::tests::test_parse_frontmatter_missing ... ok
[INFO] [stdout] test resources::skills::tests::test_skill_content_not_empty ... ok
[INFO] [stdout] test resources::skills::tests::test_parse_frontmatter_no_description ... ok
[INFO] [stdout] test subscriptions::tests::test_no_subscriptions_returns_empty ... ok
[INFO] [stdout] test subscriptions::tests::test_affected_subscriptions ... ok
[INFO] [stdout] test subscriptions::tests::test_unsubscribed_uri_not_notified ... ok
[INFO] [stdout] test subscriptions::tests::test_subscribe_unsubscribe ... ok
[INFO] [stdout] test tools::advisories::tests::test_is_relevant_combined_filters ... ok
[INFO] [stdout] test tools::advisories::tests::test_is_relevant_domain_filter ... ok
[INFO] [stdout] test tools::advisories::tests::test_is_relevant_empty_filters ... ok
[INFO] [stdout] test tools::advisories::tests::test_is_relevant_level_filter ... ok
[INFO] [stdout] test tools::attachments::tests::test_filename_basic_format ... ok
[INFO] [stdout] test tools::attachments::tests::test_filename_empty_type ... ok
[INFO] [stdout] test tools::attachments::tests::test_filename_extension_mapping ... ok
[INFO] [stdout] test tools::attachments::tests::test_filename_length_limit ... ok
[INFO] [stdout] test tools::attachments::tests::test_filename_long_task_id ... ok
[INFO] [stdout] test tools::attachments::tests::test_filename_sanitization ... ok
[INFO] [stdout] test tools::attachments::tests::test_mime_empty_parts ... ok
[INFO] [stdout] test tools::attachments::tests::test_mime_invalid_chars ... ok
[INFO] [stdout] test tools::attachments::tests::test_mime_missing_slash ... ok
[INFO] [stdout] test tools::attachments::tests::test_mime_multiple_slashes ... ok
[INFO] [stdout] test tools::attachments::tests::test_mime_too_long_parts ... ok
[INFO] [stdout] test tools::attachments::tests::test_mime_valid_special_chars ... ok
[INFO] [stdout] test tools::attachments::tests::test_mime_valid_standard ... ok
[INFO] [stdout] test tools::files::tests::test_normalize_file_paths ... ok
[INFO] [stdout] test tools::files::tests::test_normalize_path_components ... ok
[INFO] [stdout] test tools::files::tests::test_path_to_forward_slashes ... ok
[INFO] [stdout] test tools::gates::tests::test_gate_result_to_json ... ok
[INFO] [stdout] test tools::query::tests::test_query_format_parsing ... ok
[INFO] [stdout] test tools::query::tests::test_validate_readonly_rejects_delete ... ok
[INFO] [stdout] test tools::query::tests::test_validate_readonly_allows_column_names_with_keywords ... ok
[INFO] [stdout] test tools::query::tests::test_validate_readonly_rejects_insert ... ok
[INFO] [stdout] test tools::query::tests::test_validate_readonly_rejects_multiple_statements ... ok
[INFO] [stdout] test tools::query::tests::test_validate_readonly_rejects_update ... ok
[INFO] [stdout] test tools::query::tests::test_validate_readonly_rejects_drop ... ok
[INFO] [stdout] test db::template::tests::test_prepare_snapshot_extra_tags ... ok
[INFO] [stdout] test tools::query::tests::test_validate_readonly_select ... ok
[INFO] [stdout] test format::tests::test_format_task_tree_markdown_deep_nesting ... ok
[INFO] [stdout] test resources::docs::tests::test_search_docs_case_insensitive ... ok
[INFO] [stdout] test tools::query::tests::test_validate_readonly_with_cte ... ok
[INFO] [stdout] test db::search::tests::test_fts_update_trigger_reindexes_modified_tasks ... ok
[INFO] [stdout] test db::search::tests::test_fts_delete_trigger_removes_from_index ... ok
[INFO] [stdout] test db::search::tests::test_fts_attachment_trigger_indexes_text_content ... ok
[INFO] [stdout] test db::search::tests::test_fts_search_with_bm25_ranking ... ok
[INFO] [stdout] test db::search::tests::test_fts_insert_trigger_indexes_new_tasks ... ok
[INFO] [stdout] test db::search::tests::test_search_empty_db ... ok
[INFO] [stdout] test db::template::tests::test_multiple_instantiations_unique_ids ... ok
[INFO] [stdout] test db::import::tests::test_replace_mode_preserves_workers ... ok
[INFO] [stdout] test db::template::tests::test_instantiate_with_parent ... ok
[INFO] [stdout] test db::template::tests::test_instantiate_template_integration ... ok
[INFO] [stdout] test db::template::tests::test_instantiate_with_invalid_parent ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 309 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.92s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/task_graph_mcp-b9292ef09925f8a9)
[INFO] [stdout] 
[INFO] [stderr]      Running tests/connect_workflow_tests.rs (/opt/rustwide/target/debug/deps/connect_workflow_tests-78b4f492da5067dc)
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 21 tests
[INFO] [stdout] test connect_stores_workflow_in_database ... ok
[INFO] [stdout] test connect_response_includes_all_expected_fields ... ok
[INFO] [stdout] test connect_overlays_preserve_order ... ok
[INFO] [stdout] test connect_with_overlays_force_reconnection_replaces_overlays ... ok
[INFO] [stdout] test connect_stores_null_workflow_when_not_provided ... ok
[INFO] [stdout] test connect_with_force_can_clear_workflow ... ok
[INFO] [stdout] test connect_with_workflow_returns_workflow_in_response ... ok
[INFO] [stdout] test connect_overlays_round_trip_through_db ... ok
[INFO] [stdout] test connect_with_empty_workflow_string_stores_empty ... ok
[INFO] [stdout] test connect_with_force_can_clear_overlays ... ok
[INFO] [stdout] test connect_response_includes_overlays_when_non_empty ... ok
[INFO] [stdout] test connect_with_overlays_stores_overlays_in_database ... ok
[INFO] [stdout] test connect_with_empty_overlays_array_stored_as_null ... ok
[INFO] [stdout] test connect_with_force_updates_overlays ... ok
[INFO] [stdout] test connect_with_force_updates_workflow ... ok
[INFO] [stdout] test connect_with_overlays_and_workflow_combined ... ok
[INFO] [stdout] test list_workers_includes_overlays ... ok
[INFO] [stdout] test list_workers_includes_workflow ... ok
[INFO] [stdout] test connect_without_force_fails_for_existing_worker ... ok
[INFO] [stdout] test connect_without_overlays_returns_no_overlays_field ... ok
[INFO] [stdout] test connect_without_workflow_returns_null_workflow ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.43s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/db_integration_tests.rs (/opt/rustwide/target/debug/deps/db_integration_tests-dd3b3e5384b76190)
[INFO] [stdout] 
[INFO] [stdout] running 164 tests
[INFO] [stdout] test agent_tests::heartbeat_updates_last_heartbeat_and_returns_claim_count ... ok
[INFO] [stdout] test agent_tests::overlays_persist_across_force_reconnection ... ok
[INFO] [stdout] test agent_tests::get_worker_returns_empty_overlays_when_none_stored ... ok
[INFO] [stdout] test agent_tests::get_worker_returns_none_for_unknown_id ... ok
[INFO] [stdout] test agent_tests::get_worker_returns_overlays_in_worker_struct ... ok
[INFO] [stdout] test agent_tests::heartbeat_fails_for_unknown_agent ... ok
[INFO] [stdout] test agent_tests::get_worker_returns_registered_agent ... ok
[INFO] [stdout] test agent_tests::get_worker_returns_workflow_in_worker_struct ... ok
[INFO] [stdout] test agent_tests::list_workers_returns_all_registered_agents ... ok
[INFO] [stdout] test agent_tests::overlays_can_be_cleared_on_force_reconnection ... ok
[INFO] [stdout] test agent_tests::register_worker_creates_agent_with_defaults ... ok
[INFO] [stdout] test agent_tests::list_workers_returns_overlays_in_results ... ok
[INFO] [stdout] test agent_tests::list_workers_returns_workflow_in_results ... ok
[INFO] [stdout] test agent_tests::auto_generated_worker_ids_are_unique_petnames ... ok
[INFO] [stdout] test agent_tests::register_worker_rejects_duplicate_id ... ok
[INFO] [stdout] test agent_tests::register_worker_rejects_empty_id ... ok
[INFO] [stdout] test agent_tests::register_worker_rejects_id_over_64_chars ... ok
[INFO] [stdout] test agent_tests::register_worker_stores_workflow_name ... ok
[INFO] [stdout] test agent_tests::register_worker_with_custom_id ... ok
[INFO] [stdout] test agent_tests::update_worker_overlays_with_empty_list_stores_null ... ok
[INFO] [stdout] test attachment_tests::get_attachments_filtered_by_both_type_and_mime ... ok
[INFO] [stdout] test agent_tests::workflow_can_be_cleared_on_force_reconnection ... ok
[INFO] [stdout] test agent_tests::register_worker_with_overlays_stores_them ... ok
[INFO] [stdout] test agent_tests::register_worker_with_custom_tags ... ok
[INFO] [stdout] test agent_tests::register_worker_without_overlays_stores_empty ... ok
[INFO] [stdout] test agent_tests::update_worker_modifies_properties ... ok
[INFO] [stdout] test attachment_tests::get_attachments_filtered_by_mime_prefix ... ok
[INFO] [stdout] test agent_tests::workflow_persists_across_force_reconnection ... ok
[INFO] [stdout] test agent_tests::update_worker_overlays_round_trip ... ok
[INFO] [stdout] test agent_tests::register_worker_with_force_allows_reconnection ... ok
[INFO] [stdout] test agent_tests::update_worker_overlays_fails_for_unknown_worker ... ok
[INFO] [stdout] test agent_tests::update_worker_overlays_multiple_times ... ok
[INFO] [stdout] test agent_tests::register_worker_without_workflow_stores_none ... ok
[INFO] [stdout] test agent_tests::unregister_worker_removes_agent ... ok
[INFO] [stdout] test agent_tests::update_worker_overlays_preserves_other_fields ... ok
[INFO] [stdout] test attachment_tests::get_attachments_filtered_by_type_pattern ... ok
[INFO] [stdout] test auto_advance_tests::unblocked_reported_even_when_auto_advance_disabled ... ok
[INFO] [stdout] test attachment_tests::get_attachments_no_filter_returns_all ... ok
[INFO] [stdout] test auto_advance_tests::auto_advance_single_blocker_completes ... ok
[INFO] [stdout] test auto_advance_tests::auto_advance_multiple_blockers_waits_for_all ... ok
[INFO] [stdout] test auto_advance_tests::auto_advance_cascading_chain ... ok
[INFO] [stdout] test auto_advance_tests::auto_advance_skips_non_initial_state_tasks ... ok
[INFO] [stdout] test auto_rollup_tests::rollup_enabled_by_default ... ok
[INFO] [stdout] test auto_rollup_tests::parent_in_working_state_completes_directly ... ok
[INFO] [stdout] test auto_rollup_tests::cancelled_children_count_as_terminal ... ok
[INFO] [stdout] test auto_rollup_tests::rollup_can_be_explicitly_disabled ... ok
[INFO] [stdout] test auto_rollup_tests::parent_already_terminal_no_rollup ... ok
[INFO] [stdout] test auto_rollup_tests::recursive_rollup_grandparent ... ok
[INFO] [stdout] test auto_rollup_tests::parent_auto_completes_when_all_children_finish ... ok
[INFO] [stdout] test auto_rollup_tests::pending_parent_auto_transitions_through_working_to_completed ... ok
[INFO] [stdout] test claim_prompt_delivery_tests::claim_from_assigned_delivers_exit_assigned_and_enter_working_prompts ... ok
[INFO] [stdout] test dependency_tests::add_dependency_fails_for_longer_cycles ... ok
[INFO] [stdout] test claim_prompt_delivery_tests::claim_from_pending_still_delivers_working_prompts ... ok
[INFO] [stdout] test claim_prompt_delivery_tests::claim_from_assigned_with_phase_delivers_combo_prompts ... ok
[INFO] [stdout] test dependency_tests::add_dependency_fails_if_would_create_cycle ... ok
[INFO] [stdout] test dependency_tests::add_dependency_creates_relationship ... ok
[INFO] [stdout] test dependency_tests::get_ready_tasks_excludes_blocked_tasks ... ok
[INFO] [stdout] test dependency_tests::get_ready_tasks_excludes_container_tasks ... ok
[INFO] [stdout] test dependency_tests::get_ready_tasks_includes_unblocked_after_completion ... ok
[INFO] [stdout] test dependency_tests::remove_dependency_removes_relationship ... ok
[INFO] [stdout] test dependency_tests::get_ready_tasks_includes_task_after_children_removed ... ok
[INFO] [stdout] test file_contention_tests::claim_detects_file_contention_with_sibling_task ... ok
[INFO] [stdout] test file_lock_tests::claim_updates_includes_release_when_claim_in_same_batch ... ok
[INFO] [stdout] test file_contention_tests::claim_ignores_contention_from_completed_tasks ... ok
[INFO] [stdout] test file_contention_tests::find_file_contention_ignores_lock_prefixed_entries ... ok
[INFO] [stdout] test file_contention_tests::find_file_contention_db_method_with_siblings ... ok
[INFO] [stdout] test file_lock_tests::claim_updates_includes_release_for_previously_polled_claim ... ok
[INFO] [stdout] test file_contention_tests::find_file_contention_no_parent_checks_all_active_workers ... ok
[INFO] [stdout] test file_contention_tests::claim_returns_no_contention_when_no_sibling_marks ... ok
[INFO] [stdout] test file_lock_tests::claim_updates_returns_new_claims ... ok
[INFO] [stdout] test file_lock_tests::lock_file_creates_lock ... ok
[INFO] [stdout] test file_lock_tests::claim_updates_returns_immediately ... ok
[INFO] [stdout] test file_lock_tests::regression_mark_updates_after_mark_file ... ok
[INFO] [stdout] test file_lock_tests::lock_file_updates_timestamp_if_same_agent ... ok
[INFO] [stdout] test file_lock_tests::claim_updates_shows_release_for_claim_before_registration ... ok
[INFO] [stdout] test file_lock_tests::regression_end_timestamp_populated_on_unlock ... ok
[INFO] [stdout] test file_lock_tests::lock_file_returns_warning_if_locked_by_another ... ok
[INFO] [stdout] test file_lock_tests::get_file_locks_filters_by_agent ... ok
[INFO] [stdout] test file_lock_tests::unlock_file_removes_lock ... ok
[INFO] [stdout] test file_lock_tests::claim_updates_new_agent_only_sees_future_events ... ok
[INFO] [stdout] test file_lock_tests::release_worker_locks_removes_all_agent_locks ... ok
[INFO] [stdout] test file_lock_tests::unlock_file_fails_for_wrong_agent ... ok
[INFO] [stdout] test rename_tests::rename_task_fails_if_new_id_exists ... ok
[INFO] [stdout] test rename_tests::rename_task_updates_all_references ... ok
[INFO] [stdout] test state_transition_tests::update_task_status_records_transition ... ok
[INFO] [stdout] test state_transition_tests::create_task_records_initial_pending_state ... ok
[INFO] [stdout] test state_transition_tests::claim_task_records_working_transition ... ok
[INFO] [stdout] test stats_tests::get_stats_filters_by_agent ... ok
[INFO] [stdout] test state_transition_tests::reopen_completed_task_to_pending ... ok
[INFO] [stdout] test state_transition_tests::current_state_duration_returns_elapsed_time_for_working_state ... ok
[INFO] [stdout] test task_claiming_tests::claim_fails_if_blocked_by_chain ... ok
[INFO] [stdout] test stats_tests::get_stats_filters_by_task_tree ... ok
[INFO] [stdout] test stats_tests::get_stats_returns_aggregate_statistics ... ok
[INFO] [stdout] test file_lock_tests::regression_unmark_file_after_mark_file ... ok
[INFO] [stdout] test rename_tests::rename_task_fails_if_old_id_missing ... ok
[INFO] [stdout] test state_transition_tests::complete_task_accumulates_time_from_working ... ok
[INFO] [stdout] test task_claiming_tests::claim_fails_if_blocked_by_single_task ... ok
[INFO] [stdout] test state_transition_tests::multiple_claim_cycles_accumulate_time ... ok
[INFO] [stdout] test state_transition_tests::release_to_non_working_state_accumulates_time ... ok
[INFO] [stdout] test task_claiming_tests::claim_succeeds_after_blocker_completes ... ok
[INFO] [stdout] test task_claiming_tests::claim_task_assigns_owner_and_updates_status ... ok
[INFO] [stdout] test task_claiming_tests::claim_task_fails_if_already_claimed ... ok
[INFO] [stdout] test task_claiming_tests::claim_task_fails_if_agent_missing_needed_tag ... ok
[INFO] [stdout] test task_claiming_tests::claim_task_fails_if_agent_has_none_of_wanted_tags ... ok
[INFO] [stdout] test task_claiming_tests::force_release_clears_owner_regardless ... ok
[INFO] [stdout] test task_claiming_tests::update_between_two_untimed_states ... ok
[INFO] [stdout] test task_claiming_tests::update_between_two_timed_states_preserves_ownership ... ok
[INFO] [stdout] test task_claiming_tests::claim_task_succeeds_if_agent_has_needed_tags ... ok
[INFO] [stdout] test task_claiming_tests::update_to_completed_clears_ownership ... ok
[INFO] [stdout] test task_claiming_tests::release_task_fails_if_not_owner ... ok
[INFO] [stdout] test task_claiming_tests::claim_with_force_bypasses_dependency_check ... ok
[INFO] [stdout] test task_claiming_tests::update_from_timed_to_non_timed_releases_task ... ok
[INFO] [stdout] test task_claiming_tests::release_task_clears_owner_and_resets_status ... ok
[INFO] [stdout] test task_claiming_tests::update_to_timed_state_claims_task ... ok
[INFO] [stdout] test task_claiming_tests::update_to_same_state_succeeds ... ok
[INFO] [stdout] test task_claiming_tests::update_validates_tag_affinity_on_claim ... ok
[INFO] [stdout] test task_tests::create_tool_stores_needed_and_wanted_tags ... ok
[INFO] [stdout] test task_tests::create_task_with_all_fields ... ok
[INFO] [stdout] test task_tests::create_task_with_parent_creates_contains_dependency ... ok
[INFO] [stdout] test task_claiming_tests::update_with_force_claims_from_another_agent ... ok
[INFO] [stdout] test task_claiming_tests::update_without_force_fails_if_claimed_by_another ... ok
[INFO] [stdout] test task_tests::delete_task_without_cascade_fails_if_has_children ... ok
[INFO] [stdout] test task_tests::get_task_returns_existing_task ... ok
[INFO] [stdout] test task_tests::create_task_with_minimal_fields ... ok
[INFO] [stdout] test task_tests::delete_task_with_cascade_removes_children ... ok
[INFO] [stdout] test task_tests::delete_task_removes_task ... ok
[INFO] [stdout] test task_tests::get_children_returns_direct_children_in_order ... ok
[INFO] [stdout] test task_tests::delete_task_obliterate_cascade_with_file_locks ... ok
[INFO] [stdout] test task_tests::get_task_returns_none_for_unknown_id ... ok
[INFO] [stdout] test task_tests::list_tasks_filters_by_status ... ok
[INFO] [stdout] test task_tests::list_tasks_filters_satisfied_blockers ... ok
[INFO] [stdout] test task_tests::list_tasks_limit_without_offset_returns_first_n ... ok
[INFO] [stdout] test task_tests::list_tasks_limit_and_offset_pages_through_results ... ok
[INFO] [stdout] test task_tests::list_tasks_offset_skips_first_n_results ... ok
[INFO] [stdout] test task_tests::list_tasks_offset_exceeding_total_returns_empty ... ok
[INFO] [stdout] test task_tests::list_tasks_offset_equal_to_count_returns_empty ... ok
[INFO] [stdout] test task_tests::list_tasks_markdown_hides_satisfied_blockers ... ok
[INFO] [stdout] test task_tests::list_tasks_offset_zero_returns_from_beginning ... ok
[INFO] [stdout] test task_tests::list_tasks_tool_has_more_false_at_end ... ok
[INFO] [stdout] test task_tests::list_tasks_offset_with_status_filter ... ok
[INFO] [stdout] test task_tests::list_tasks_tool_has_more_false_exact_fit ... ok
[INFO] [stdout] test task_tests::list_tasks_tool_has_more_with_offset_in_middle ... ok
[INFO] [stdout] test task_tests::list_tasks_tool_has_more_true_when_more_results_exist ... ok
[INFO] [stdout] test task_tests::list_tasks_tool_has_more_with_ready_offset ... ok
[INFO] [stdout] test task_tests::list_tasks_tool_json_next_offset_fields ... ok
[INFO] [stdout] test task_tests::list_tasks_tool_markdown_next_offset_on_second_page ... ok
[INFO] [stdout] test task_tests::list_tasks_tool_offset_exceeding_ready_results_returns_empty ... ok
[INFO] [stdout] test task_tests::list_tasks_tool_markdown_shows_more_results_hint ... ok
[INFO] [stdout] test task_tests::list_tasks_tool_no_limit_returns_all_with_has_more_false ... ok
[INFO] [stdout] test task_tests::list_tasks_tool_offset_with_blocked_path ... ok
[INFO] [stdout] test task_tests::list_tasks_tool_offset_with_claimed_path ... ok
[INFO] [stdout] test task_tests::update_task_modifies_properties ... ok
[INFO] [stdout] test update_prompts_param_tests::update_prompts_all_returns_prompts ... ok
[INFO] [stdout] test tracking_tests::set_thought_updates_current_thought ... ok
[INFO] [stdout] test update_prompts_param_tests::update_prompts_caller_with_assignee_suppresses_prompts ... ok
[INFO] [stdout] test task_tests::list_tasks_tool_paging_covers_all_results ... ok
[INFO] [stdout] test tracking_tests::log_cost_accumulates_tokens_and_cost ... ok
[INFO] [stdout] test tracking_tests::log_time_accumulates_duration ... ok
[INFO] [stdout] test task_tests::update_task_to_completed_sets_completed_at ... ok
[INFO] [stdout] test update_prompts_param_tests::update_prompts_caller_without_assignee_returns_prompts ... ok
[INFO] [stdout] test update_prompts_param_tests::update_prompts_default_returns_prompts ... ok
[INFO] [stdout] test update_prompts_param_tests::update_prompts_none_suppresses_all_prompts ... ok
[INFO] [stdout] test update_prompts_param_tests::update_prompts_none_does_not_affect_other_response_fields ... ok
[INFO] [stdout] test task_tests::list_tasks_tool_offset_with_ready_path ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 164 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.22s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/feedback_tests.rs (/opt/rustwide/target/debug/deps/feedback_tests-2168a33bc2e14593)
[INFO] [stdout] 
[INFO] [stdout] running 19 tests
[INFO] [stdout] test give_feedback_tests::all_valid_categories_accepted ... ok
[INFO] [stdout] test append_tests::header_only_written_once_across_calls ... ok
[INFO] [stdout] test append_tests::multiple_entries_append_correctly ... ok
[INFO] [stdout] test give_feedback_tests::empty_message_returns_error ... ok
[INFO] [stdout] test give_feedback_tests::all_valid_sentiments_accepted ... ok
[INFO] [stdout] test give_feedback_tests::invalid_sentiment_returns_error ... ok
[INFO] [stdout] test give_feedback_tests::missing_message_returns_error ... ok
[INFO] [stdout] test give_feedback_tests::invalid_category_returns_error ... ok
[INFO] [stdout] test give_feedback_tests::whitespace_only_message_returns_error ... ok
[INFO] [stdout] test give_feedback_tests::happy_path_creates_file_and_returns_recorded ... ok
[INFO] [stdout] test give_feedback_tests::with_explicit_category_and_sentiment ... ok
[INFO] [stdout] test list_feedback_tests::returns_content_after_giving_feedback ... ok
[INFO] [stdout] test tool_definition_tests::get_tools_returns_two_tools ... ok
[INFO] [stdout] test give_feedback_tests::with_all_optional_fields ... ok
[INFO] [stdout] test give_feedback_tests::suggestion_sentiment_accepted ... ok
[INFO] [stdout] test list_feedback_tests::no_file_returns_empty_content ... ok
[INFO] [stdout] test feature_gate_tests::feedback_tools_excluded_when_disabled ... ok
[INFO] [stdout] test feature_gate_tests::feedback_tools_included_when_enabled ... ok
[INFO] [stdout] test feature_gate_tests::default_feedback_config_enables_tools ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 19 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.11s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/overlay_tool_tests.rs (/opt/rustwide/target/debug/deps/overlay_tool_tests-ff3a7f001f9b55af)
[INFO] [stdout] 
[INFO] [stdout] running 18 tests
[INFO] [stdout] test add_overlay_rejects_duplicate_overlay ... ok
[INFO] [stdout] test add_then_remove_overlay_round_trip ... ok
[INFO] [stdout] test remove_overlay_rejects_missing_worker_id ... ok
[INFO] [stdout] test remove_overlay_rejects_unknown_worker ... ok
[INFO] [stdout] test remove_overlay_leaves_other_overlays_intact ... ok
[INFO] [stdout] test remove_overlay_rejects_inactive_overlay ... ok
[INFO] [stdout] test add_overlay_rejects_unknown_overlay ... ok
[INFO] [stdout] test add_multiple_overlays_then_remove_one ... ok
[INFO] [stdout] test add_overlay_rejects_missing_overlay ... ok
[INFO] [stdout] test add_overlay_after_remove_succeeds ... ok
[INFO] [stdout] test add_overlay_returns_overlay_diff ... ok
[INFO] [stdout] test remove_overlay_rejects_missing_overlay ... ok
[INFO] [stdout] test add_overlay_appends_to_existing_overlays ... ok
[INFO] [stdout] test add_overlay_succeeds_and_persists ... ok
[INFO] [stdout] test add_overlay_rejects_missing_worker_id ... ok
[INFO] [stdout] test add_overlay_rejects_unknown_worker ... ok
[INFO] [stdout] test remove_overlay_returns_overlay_diff ... ok
[INFO] [stdout] test remove_overlay_succeeds_and_persists ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.49s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/query_tests.rs (/opt/rustwide/target/debug/deps/query_tests-c1a0a8c153688550)
[INFO] [stdout] 
[INFO] [stdout] running 14 tests
[INFO] [stdout] test query_max_limit_enforced ... ok
[INFO] [stdout] test query_rejects_insert ... ok
[INFO] [stdout] test query_rejects_multiple_statements ... ok
[INFO] [stdout] test query_with_cte ... ok
[INFO] [stdout] test query_allows_column_names_with_keywords ... ok
[INFO] [stdout] test query_default_limit ... ok
[INFO] [stdout] test query_select_all_tasks ... ok
[INFO] [stdout] test query_rejects_drop ... ok
[INFO] [stdout] test query_rejects_delete ... ok
[INFO] [stdout] test query_rejects_update ... ok
[INFO] [stdout] test query_markdown_format ... ok
[INFO] [stdout] test query_enforces_row_limit ... ok
[INFO] [stdout] test query_csv_format ... ok
[INFO] [stdout] test query_with_parameters ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 14 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.46s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/schema_tests.rs (/opt/rustwide/target/debug/deps/schema_tests-ef40bd221014518c)
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test get_schema_excludes_internal_tables ... ok
[INFO] [stdout] test get_schema_includes_column_details ... ok
[INFO] [stdout] test get_schema_includes_foreign_keys ... ok
[INFO] [stdout] test get_schema_without_sql_excludes_create_statements ... ok
[INFO] [stdout] test get_schema_returns_all_tables ... ok
[INFO] [stdout] test get_schema_with_sql_includes_create_statements ... ok
[INFO] [stdout] test get_table_names_returns_only_names ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.23s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/workflow_config_tests.rs (/opt/rustwide/target/debug/deps/workflow_config_tests-36bed6ce48e45b23)
[INFO] [stdout] 
[INFO] [stdout] running 26 tests
[INFO] [stdout] test list_workflows_tests::handles_nonexistent_directories_gracefully ... ok
[INFO] [stdout] test list_workflows_tests::embedded_workflows_always_present ... ok
[INFO] [stdout] test install_directory_tests::loads_workflow_from_install_directory ... ok
[INFO] [stdout] test list_workflows_tests::ignores_invalid_workflow_filenames ... ok
[INFO] [stdout] test list_workflows_tests::deduplicates_workflows_present_in_both_directories ... ok
[INFO] [stdout] test install_directory_tests::lists_workflows_from_install_directory ... ok
[INFO] [stdout] test install_directory_tests::user_overrides_project_overrides_install ... ok
[INFO] [stdout] test list_workflows_tests::lists_workflows_from_both_directories ... ok
[INFO] [stdout] test list_workflows_tests::lists_workflows_from_project_directory ... ok
[INFO] [stdout] test install_directory_tests::project_overrides_install_for_same_workflow ... ok
[INFO] [stdout] test named_workflows_cache_tests::can_insert_and_retrieve_named_workflow ... ok
[INFO] [stdout] test named_workflows_cache_tests::default_workflow_key_returns_correct_workflow ... ok
[INFO] [stdout] test load_workflow_by_name_tests::merges_workflow_with_defaults ... ok
[INFO] [stdout] test named_workflows_cache_tests::named_workflows_cache_starts_empty ... ok
[INFO] [stdout] test list_workflows_tests::returns_sorted_workflow_names ... ok
[INFO] [stdout] test load_workflow_by_name_tests::loads_workflow_from_project_directory ... ok
[INFO] [stdout] test load_workflow_by_name_tests::user_workflow_takes_precedence_over_project ... ok
[INFO] [stdout] test workflow_content_tests::workflow_settings_are_correctly_loaded ... ok
[INFO] [stdout] test load_workflow_by_name_tests::returns_error_for_nonexistent_workflow ... ok
[INFO] [stdout] test workflow_content_tests::loaded_workflow_has_correct_state_transitions ... ok
[INFO] [stdout] test workflow_prompts_differ_from_defaults_tests::loaded_workflow_prompts_override_defaults ... ok
[INFO] [stdout] test load_workflow_by_name_tests::loads_workflow_from_user_directory_when_not_in_project ... ok
[INFO] [stdout] test load_workflow_by_name_tests::loads_embedded_workflow_when_no_directories_exist ... ok
[INFO] [stdout] test workflow_content_tests::loaded_workflow_has_correct_phase_prompts ... ok
[INFO] [stdout] test named_workflows_cache_tests::default_workflow_key_with_missing_workflow_returns_none ... ok
[INFO] [stdout] test workflow_prompts_differ_from_defaults_tests::swarm_workflow_has_distinct_working_prompt ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 26 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests task_graph_mcp
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test src/config/watcher.rs - config::watcher::start_config_watcher (line 130) ... ignored
[INFO] [stdout] test src/config/merge.rs - config::merge::deep_merge (line 15) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 2.17s; merged doctests compilation took 2.12s
[INFO] running `Command { std: "docker" "inspect" "e0280152b8a455dd249c76909b74229c16af6b7a9e809d578ea57663dd55a125", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e0280152b8a455dd249c76909b74229c16af6b7a9e809d578ea57663dd55a125", kill_on_drop: false }`
[INFO] [stdout] e0280152b8a455dd249c76909b74229c16af6b7a9e809d578ea57663dd55a125
